Many kinds of apparatus are known which can connect to servers for machine-to-machine communication. Purely by way of example, such types of apparatus may include vending machines, medical monitoring machines, and many others. In many cases, the apparatus is designed to connect through different types of network, including for example mobile networks and wired networks.
There is frequently a need to remotely access status information of such apparatus. For example, where the apparatus is a vending machine, the status information of the apparatus might include information about the stock levels of products in the machine. An operator of the vending machine may then remotely monitor this status information to determine when the vending machine needs restocking. The status information may include information about a current configuration of the apparatus. For example, the status information of the vending machine might include information about the prices that are currently configured for each kind of product.
Increasingly, access to such status information is achieved by incorporating an integral web server in the apparatus. The integral web server delivers a web page which can be read and updated as required to provide the status information. As is known, web pages may include indications of a number of elements (or resources) which are included as a part of the web page. Increasingly, the web pages that are provided by such integral web servers are not simple text-only web pages but are instead web pages of significant complexity including significant graphical complexity involving elements such as images, animations, videos or sounds, as well as other elements which affect how the web page is displayed and/or behaviour, such as scripts or style sheets. The provision of more complex web pages to provide the status information of apparatus is generally desirable as it enables a more comprehensive user interface to be provided which provides greater functionality to the user and enables the user to more readily navigate the user interface and understand the status information that is being provided.
The web pages that are provided by the integral web server may allow a user to modify the configuration of the machine. As discussed above, the status information may include configuration information about the configuration of the apparatus. In addition to displaying the configuration information, the web page may allow the configuration information to be modified and updated on the apparatus. The apparatus may then operate in accordance with the updated configuration. For example, the status information displayed by the web page might include information about the prices that are currently configured for each kind of product in a vending machine. The web page may include components which enable a user to change the prices that are configured for each product type and send these back to the integral web server of the vending machine to allow the vending machine's configuration to be updated accordingly. The vending machine may then operate by selling the products at the newly configured prices.
Web pages are normally retrieved and viewed using a standard browser program operating on a client computer system. In order to retrieve a particular web page, a browser will typically request the web page from a web server, such as the integral web server of the apparatus, which will transmit the web page in response. Following receipt (or retrieval) of the web page, the browser will ordinarily proceed to retrieve the elements that are included in the web page so as to display the web page in its entirety. Therefore, for a complex web page including a large number of elements (such as images, scripts and so on), the retrieval of the web page may involve issuing multiple requests to a web server in order to fully retrieve the web page in its entirety (i.e. including all of its included elements).
The use of a web page served by an integral web server of the apparatus to provide a user interface to the apparatus (i.e. to provide the status information of the apparatus and possibly allow the configuration of the apparatus to be changed) means that the apparatus can be managed (i.e. monitored and/or configured) from any computer system which can connect to the integral web server via some network of any kind and which is capable of running a standard web browser program. This means that the computer system from which the apparatus is managed does not need to be specially configured in any way, improving the flexibility of managing the apparatus.
Generally, the provision of complex web pages does not cause any issues where the web pages are accessed by fast local wired networks. However, they can cause difficulty where the web page is accessed over a slow data connection. This is a particular issue in the case of deploying remote devices where the connection is by a low cost service, such as a GPRS service, either to keep the cost of connectivity down or in locations where high performance mobile data connections such as 4G connections are not available. In such situations, the slow data connection may result in very long load times for a complex web page where the elements of the web page take a long time to be retrieved (and, in some cases, may not even be retrievable at all).
Although it might be thought that this problem could be addressed simply by adapting the integral web servers to display simpler web pages, this is frequently not practical. For example, in the case of apparatus requiring mobile or wired connectivity, it is typical to include a router device provided from a third party supplier in the apparatus. Such a router device typically includes an integral web server hard coded into the device—typically a single chip—and it is not normally possible to update the web server integrated into the router chip to display non-standard status information. It will be appreciated that many different stand-alone devices such as chips may be incorporated into apparatus.
Such devices may be mobile router devices. One way of providing remote connectivity to an apparatus is through the integration (or inclusion) of such a mobile router device within the apparatus. These mobile router devices can connect to a local network and a mobile network and function to forward packets between the two networks. This enables devices which are connected to the local network to communicate with remote devices via the mobile network through the router and vice-versa. The router device may have an internal web server which may provide status information about the router device itself. This status information may include, for example, information about which networks the router device is connected to and the status of those networks, such as other devices that are accessible via those networks and a total data throughput that has been sent and/or received on each network. The web page that is served by the router's internal web server may allow the configuration of the router to be changed, such as for example to change the configuration of the networks to which the router is connected or to change rules relating to how the router device forwards data packets from devices on one network to devices on the other network.
Most modern relatively complex machines typically have a number of internal computer devices which control various aspects of the machine's functioning. These internal computer devices are typically linked together via an internal wired network. A router device may therefore be connected to this internal wired network to provide mobile connectivity to the machine and its internal computer devices. This means that the remote computer devices are enabled to communicate with the internal computer devices of the machine and vice-versa. This enables the machine in which a router device is embedded to be deployed anywhere (with mobile network coverage) whilst maintaining connectivity with a remote computer system or network of computer systems.
As an example, consider a coffee vending machine. The coffee vending machine may comprise a number of different internal computer devices, such as a payment terminal, a drink dispensing control device and a user interface controller all interconnected via an internal wired network. The user interface controller may, for example, be arranged to display an output showing a range of drinks options on a touch screen of the coffee vending machine and may receive user input in response to the user touching the options on the touch screen. After a user has selected a drinks option, the user interface controller may cause the touch screen to display an instruction to the user to make a payment using the payment terminal and may send a signal to the payment terminal instructing it to start a process for taking a payment of a particular amount. Once the payment has been made, the payment terminal may issue a signal back to the user interface controller indicating that the payment has been made. The user interface controller may then cause the touch screen to display an indication to the user that the payment has been successful and may send a signal to the drink dispensing control device to start a process for dispensing the user's chosen drink. Once the drink dispensing control device has finished dispensing the drink, it may send a signal back to the user interface controller which may in turn cause the touch screen to display a message to the user that their drink is ready to be taken. Of course, other interactions may occur between the different components of the machine to achieve the same result.
A router device may be embedded (or integrated or included) in such a machine to allow the machine to be remote managed (i.e. monitored and/or configured). The machine in which a router device is embedded may be remotely managed thorough the router device in a couple of different ways.
Firstly, internal computer devices of the machine may have their own integral web servers for providing status information relating to their operation. For example, the payment terminal may have an internal web server which provides a web page containing a log of recent transactions that have been processed (or attempted). Similarly, the drink dispensing control device may have its own internal web server which provides a web page containing a current stock level of each type of drink. Therefore, a remote computer system may access the status information of those devices directly. In other words, the remote computer system may send a request for the web page from a particular internal computer system (such as the payment terminal or the drink dispensing control device) via the mobile network to the router which forwards the request via the internal network to the internal computer system. The internal computer system may then send the web page in response to the request by sending the web page over the internal network to the router device, which in turn forwards it over the mobile network to the remote computer device. As discussed above, the web pages may also allow the configuration of the internal computer systems to be modified.
Alternatively, the router device may collect status information from the internal computer systems via the local network and include this status information in web pages that are provided by its own internal web server. The router device can therefore provide status information about the machine in which it is embedded (or integrated). Furthermore, the web pages provided by the router device may enable the operation of the machine to be configured. For example, the machine status information included in the web pages provided by the router device may include configuration information for one or more of the internal computer systems. The web page may enable the user to modify the configuration information and send the modified configuration information back to the router device which in turn modifies the configuration of the associated internal computer systems.
In any case, it is possible for the status and operation of the machine to be remotely monitored and/or configured. For example, the status information of the coffee machine might include information such as its current state (e.g. awaiting user interaction, awaiting payment or dispensing drink), any recent errors that have been encountered (e.g. an error log), statistics about the numbers of each type of drink that have been dispensed, possibly together with statistics about the times of day or days of the week (or month) that each type of drink are dispensed, and so on. Similarly, the machines configuration may be altered remotely, such as, for example by adjusting the prices that are associated with each type of drink, or changing an indication of the types of drink that are available from the machine. Having the ability to remotely monitor and/or configure the machine can be of great use to an operator of the machine. For example, by having access to statistics about the numbers of each type of drink that have been dispensed and statistics about the times of the day or days of the week that each type of drink is dispensed, an operator may be able to better schedule re-supply or maintenance visits to the machine, improving their operating efficiency. Similarly, an operator may be able to use such statistics to adjust the types of drinks (or ratios thereof) that are stocked in each machine based on the demand (possibly adjusted to account for any seasonal variations) for each type of drink.
It should be appreciated that in many cases in such applications an operator will have a very large number of remote devices (or machines). For example, in the case of so-called “smart meters” a utility supplier may have very large numbers of remote devices connected to a central server by means of low cost GPRS mobile data connections. Such smart meters may be configured locally by connecting a suitable client device to the smart meter but it is not practical to send an operative to do so to configure each and every smart meter operated by a utility company, so instead it is necessary to carry out configuration remotely using a mobile data connection. If it takes a minute to download the configuration web page over the mobile data connection, this may be prohibitive to a utility company trying to reconfigure hundreds of thousands of smart meters, if not more. The same applies to the case where it is simply required to download configuration data from large numbers of devices.
There is thus a need for improved methods and apparatus to address this issue.